package net.asgarli.ivault.api;

/**
 * Defines the method by which key for encryption will be supplied.
 * Currently can be supplied by user or generated from password.
 * 
 * @author Elchin Asgarli
 * @version 0.1
 * @since 0.1
 */
public abstract class KeySupplyMethod implements IVSerializable {

	private static final long serialVersionUID = 1L;
	
	/**
	 * Returns the key.
	 * @return the key.
	 */
	public abstract byte[] getKey();
	
	/**
	 * Gives the number of bytes necessary to start the parsing.
	 * @return
	 */
	public abstract int getInitialParseByteSize();
}
